<?php

class PdoPays extends PdoConnect {

    public function create(pays $pays) {
        try {
            $this->open();
            $sql = "INSERT INTO `pays`(IDPAYS, NOMPAYS, NOMNATIONALITE ) VALUES(?, ?, ?)";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $pays->getIdPays(), PDO::PARAM_INT);
            $prep->bindValue(2, $pays->getNomPays(), PDO::PARAM_STR);
            $prep->bindValue(3, $pays->getNomNationalite(), PDO::PARAM_STR);


            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * FROM `pays` ORDER BY NOMPAYS";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdPays) {
        try {
            $this->open();
            $sql = "SELECT * FROM `pays` WHERE IDPAYS=$IdPays";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $pays = new Pays();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $pays->setIdPays($ligne->IDPAYS);
            $pays->setNomPays($ligne->NOMPAYS);
            $pays->setNomNationalite($ligne->NOMNATIONALITE);

            return $pays;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(pays $pays) {

        try {
            $this->open();
            $sql = "DELETE FROM `pays` WHERE IDPAYS=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $pays->getIdPays(), PDO::PARAM_INT);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(pays $pays) {
        try {
            $this->open();
            $sql = "UPDATE `pays` SET NOMPAYS= ?, NOMNATIONALITE= ? WHERE IDPAYS=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $pays->getNomPays(), PDO::PARAM_STR);
            $prep->bindValue(2, $pays->getNomNationalite(), PDO::PARAM_STR);
            $prep->bindValue(3, $pays->getIdPays(), PDO::PARAM_INT);

            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function exist($nomPays) {
        $this->open();
        $query = "SELECT * FROM pays WHERE NomPays='$nomPays';";
        $statement = $this->pdo->query($query);
        return $statement->rowCount();
    }

}
